package servlet;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import service.SistemaCVR;
import xml.SerializadorOrdenCompra;
import xml.SerializadorRemito;
import xml.XmlUtil;
import bean.vo.CotizacionVO;
import bean.vo.OrdenCompraVO;
import bean.vo.RemitoODVVO;

/**
 * Servlet implementation class EnviarMercaAODVs
 */
public class EnviarMercaAODVs extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public EnviarMercaAODVs() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		HttpSession session = request.getSession();
		try {
			List<RemitoODVVO> remitos = SistemaCVR.generarEnviosDeMercaderiaParaOdvs();
			
			if(remitos.isEmpty()){
//				request.setAttribute("remitosODV", "No se encontraron envios de mercaderia a procesar");
				session.setAttribute("mensaje", "No se encontraron envios de mercaderia a procesar");
				session.setAttribute("remitos", new ArrayList<RemitoODVVO>());
			}else{
				session.setAttribute("remitos", remitos);
				session.setAttribute("mensaje", "");
				
//				StringBuffer sb = new StringBuffer();
//				for (RemitoODVVO remitoODVVO : remitos) {
//					
//					//Creo el xml con los envios generados
//					XmlUtil.saveDocument( SerializadorRemito.serialize(null, remitoODVVO) , "./Resources/RemitoODV_"+remitoODVVO.getNumeroRemito()+".xml");
//					sb.append("Nro remito: ");
//					sb.append(remitoODVVO.getNumeroRemito());
//					sb.append(" - Oficina de Venta: ");
//					sb.append(remitoODVVO.getOficinaDeVenta().getNombre());
//					sb.append("\n");
//				}
//				request.setAttribute("remitosODV", sb.toString());
			}
		} catch (Exception e) {
//			request.setAttribute("remitosODV", "Se produjo un error al procesar los remitos para las Oficinas de Venta");
			session.setAttribute("mensaje", "Se produjo un error al procesar los remitos para las Oficinas de Venta");
		}finally{
			RequestDispatcher dispatcher = request.getRequestDispatcher("/resultadoEnviosODV.jsp");
			dispatcher.forward(request, response);
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

}
